- 10.6. Eventos do CT-e
10.6.5. Prestação de serviço em desacordo - 10.6.4. Registro Multimodal
« Anterior - 10.6.6. Cancelamento da Prestação em desacordo novo
Próximo »
10.6.5. Prestação de serviço em desacordo
Prestação de Serviço em Desacordo
Assinatura
string EnviaPrestDesacordo(string siglaWS, int tipoAmbiente, string nomeCertificado, string versao, ref string msgDados, out string msgRetWS, out int cStat, out string msgResultado, string chaveCTe, string CNPJTomador, string xObs, string dhEvento, out string nProtocolo, out string dProtocolo, string proxy, string usuario, string senha, string licenca)
Descrição:
Funcionalidade para tomador do serviço informar ao fisco que o documento CT-e que o relaciona está em desacordo com a prestação de serviço.
Os principais parâmetros do evento de prestação em desacordo são:
- chave de acesso do CT-e;
- observação do tomador com mínimo de 15 caracteres e máximo de 255 caracteres;
- data e hora do Evento;
Condições para informar o evento de prestação de serviço em desacordo
- CT-e autorizado, não pode estar cancelado ou denegado ou ter um CT-e de substituição ou anulação associado;
- CT-e autorizado em 45 dias;
Prazo para informar a prestação de serviço em desacordo
Em até 45 dias da autorização de uso do CT-e objeto do evento.
Preenchimento da siglaWS
A identificação do WS será informada no parâmetro siglaWS, veja Tabela de siglaWS
Preenchimento do nomeCertificado
informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL, formas possíveis:
1. uso de certificado digital existente no repositório MY do CSP do usuário corrente (currentuser)
É a forma de mais comum de uso, cabe ressaltar que é a única forma de uso de certificado digital do tipo A3 que a DLL oferece.
O usuário deve passar como parâmetro o campo assunto do certificado no parâmetro NomeCertificado para que a DLL localize um certificado digital com mesmo assunto no repositório MY do currentuser do equipamento.
Esta forma de uso requer a prévia instalação do certificado digital na conta do usuário do Windows (logon) que irá utilizar o certificado digital.2. uso de certificado digital em arquivo no formato pfx
Permite o de uso de certificado digital em arquivo formato pfx.
O caminho da localização (path) do arquivo pfx deve ser passado para a DLL no formato: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "ARQUIVO|c:\certificado.pfx|senha".
Esta opção só funciona com certificado digital do tipo A1.3. uso de certificado digital em string base64
Permite uso o arquivo do certificado digital em formato pfx convertido em uma string base64. O certificado digital em string base64 deve ser passado para a DLL no formato: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha".
Esta opção só funciona com certificado digital do tipo A1. É uma opção de uso que oferece maior versatilidade, pois permite o armazenamento do certificado digital em banco de dados na aplicação. É a forma mais indicada para uso em ASP.NET.
Parâmetros:
nome | tipo | fluxo | descrição |
---|---|---|---|
siglaWS | string | entrada | A identificação do WS será informada no parâmetro siglaWS, veja Tabela de siglaWS |
tipoAmbiente | inteiro | entrada | informar o código do ambiente desejado: 1- produção ou 2-homologação |
NomeCertificado | string | entrada | informar o certificado digital que será utilizado para assinatura: 1. informar o assunto do certificado digital que deve existir no repositório MY do current user, ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS". 2. informar: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] para uso do certificado digital em arquivo pfx, ex.: "ARQUIVO|c:\certificado.pfx|senha". 3. informar: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado para passar uma string contendo um certificado digital em base64, ex.:"CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha". (novas opções) |
versao | string | entrada | informar a versão da mensagem do WS: 4.00. O valor 3.00 pode ser informado até o fim da vigência da versão 3.00 previsto para 31/01/24). |
msgDados | string | saída | retorna a mensagem XML do evento prestação de serviço em desacordo criado pela DLL que foi enviado ao WS. |
msgRetWS | string | saída | retorna a mensagem XML de resposta do WS |
cStat | inteiro | saída | retorna o resultado da chamada do WS. |
msgResultado | string | saída | retorna a literal do resultado da chamada do WS |
chaveCTe | string | entrada | informar a chave de acesso do CT-e objeto do evento prestação de serviço em desacordo |
CNPJTomador | string | entrada | informar o CNPJ do tomador da prestação de serviço em desacordo, deve ter a licença de uso da DLL. |
xObs | string | entrada | informar a observação do evento prestação de serviço em desacordo com pelo menos 15 caracteres e máximo de 255 caracteres |
dhEvento | string | entrada | informar a data e hora do evento prestação de serviço em desacordo no formato UTC (data e hora com fuso horário): "AAAA-MM-DDTHH:MM:SS-HH:00". Exemplos: 2017-01-13T12:34:00-02:00 (fuso horário de Brasília no horário de verão). 2017-01-13T12:34:00-03:00 (fuso horário de Brasília). Se nada for informado (""), a DLL utilizará a data e hora e fuso horário do equipamento. |
nProtocolo | string | saída | retorna o número do protocolo de registro do evento prestação em desacordo do CT-e |
dProtocolo | string | saída | retorna a data e hora de registro do evento prestação de serviço em desacordo do CT-e pela SEFAZ. |
proxy | string | entrada | informar 'http://proxyserver:port' quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443' |
usuario | string | entrada | informar o usuário para autenticação no proxy, se necessário |
senha | string | entrada | informar a senha de autenticação no proxy, se necessário |
licenca | string | entrada | informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento, para maiores detalhes veja as condições de uso |
Retorno:
O resultado da chamada do EnviaPrestDesacordo é a mensagem XML composta pelo Evento prestação de serviço em desacordo e respectivo protocolo de registro do evento se o Evento de prestação de serviço em desacordo for registrado e vinculado no CT-e (cStat=135).
Exemplo do XML Evento de prestação de serviço em desacordo:
<?xml version="1.0" encoding="UTF-8"?> <eventoCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="3.00"> <infEvento Id="ID6101103517010000000000019157001000000001106510045301"> <cOrgao>35</cOrgao> <tpAmb>2</tpAmb> <CNPJ>10142785000190</CNPJ> <chCTe>35170100000000000191570010000000011065100453</chCTe> <dhEvento>2017-01-26T22:14:29-02:00</dhEvento> <tpEvento>610110</tpEvento> <nSeqEvento>1</nSeqEvento> <detEvento versaoEvento="3.00"> <evPrestDesacordo> <descEvento>Prestação do Serviço em Desacordo</descEvento> <indDesacordoOper>1</indDesacordoOper> <xObs>CT-e emitido com dados incorretos</xObs> </evPrestDesacordo> </detEvento> </infEvento> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <Reference URI="#ID6101103517010000000000019157001000000001106510045301"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>ekeOwyAyTvli7txo8JZ7Hpjh8UM=</DigestValue> </Reference> </SignedInfo> <SignatureValue>L+ruCGRJayCNG8vYaVhIHHuGfdzA1V(...)BScuA/5NNw1Fn2wU4em4A==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIIUDCCBjigAwIBAgIQGclP(...)NkBdOAr7Ns4azU=</X509Certificate> </X509Data> </KeyInfo> </Signature> </eventoCTe>
O parâmetro cStat retorna um código numérico com os seguintes significados:
código | Mensagem | origem | regra |
---|---|---|---|
5001 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: o certificado cliente: 1.não é ICP-Brasil; 2.fora do prazo de validade; 3.revogado; 4.certificado cliente não confiável para o Web Service acessado, contatar a SEFAZ) | DLL | - |
5002 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: a cadeia de certificação do Web Service acessado ou do certificado cliente inexistente no repositório de certificados do usuário corrente do Windows) | DLL | - |
5003 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: serviço inexistente, verifique se o nome do serviço da url acessada está correto no arquivo ws2.xml) | DLL | - |
5004 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: método não permitido) | DLL | - |
5005 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: a url não encontrada, verifique se o nome do domínio da url acessada está correto no arquivo ws2.xml) | DLL | - |
5006 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Time-Out, o WS não respondeu a solicitação no tempo estabelecido: [{1:0}]) | DLL | - |
5007 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: mensagem maior que a permitida) | DLL | - |
5008 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Servidor com problemas) | DLL | - |
5009 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço não implementado) | DLL | - |
5010 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço temporariamente indisponível, servidor sem recursos para atender a solicitação) | DLL | - |
5011 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Causa provável da falha na conexão: Rede indisponível) | DLL | - |
5012 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Versão do SOAP não suportada | DLL | - |
5013 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, não houve nenhum retorno ou resposta) | DLL | - |
5014 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, falha desconhecida) | DLL | - |
5015 | Erro: Falha na conexão: Tempo limite de time-out alcançado [TEMPO DE TIME OUT UTILIZADO ms] - [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5016 | Erro: Falha na conexão: Falha da Biblioteca Criptografica: [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5017 | Erro: Falha ao tratar o XML de retorno do WS: [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5101 | Erro: A mensagem de retorno do WS não é um XML válido: [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5102 | Erro: Tag cStat inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5103 | Erro: Tag xMotivo inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5104 | Erro: Tag [NOME TAG] inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5105 | Erro: O WS não devolveu nenhum resultado | DLL | - |
5201 | Erro: O código do tipo de ambiente [CODIGO RECEBIDO PELA DLL] informado diferente de 1 - produção e 2 - homologação | DLL | - |
5202 | Erro: A sigla da UF [SIGLA RECEBIDA PELA DLL] informada é inválida | DLL | - |
5203 | Erro: Inexiste url para a UF [SIGLA UF] informada no ambiente [AMBIENTE] desejado, verifique se existe atualização do arquivo [NOME ARQUIVO] disponível. | DLL | - |
5204 | Erro: Arquivo que contem a URL do WS não localizado em [CAMINHO DA APLICACAO] | DLL | - |
5205 | Erro: Ocorreu um erro inesperado no processamento da URL (NOME URL) : [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5206 | Erro: Ocorreu um erro de validação do XML (NOME XML) : [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5403 | Erro: Falha ao acessar certificado digital [mensagem de ERRO DO WINDOWS] | DLL | - |
5404 | Erro: Nenhum certificado digital selecionado | DLL | |
5405 | Erro: Nenhum certificado válido foi encontrado com o nome [NomeCertificado] informado no repositório [MY do CurrentUser] | DLL | - |
5406 | Erro: Falha no tratamento do parâmetro nome: [nome informado] | DLL | - |
5407 | Erro: Quantidade de parâmetos inválido: [nome informado] | DLL | - |
5408 | Erro: Falha na criação do objeto certificate: [mensagem do ERRO DO WINDOWS] | DLL | - |
6101 | Erro: O parâmetro versao não foi informado | DLL | - |
6102 | Erro: O conteúdo do parâmetro sigla da UF: [CONTEÚDO] é inválido | DLL | - |
6103 | Erro: O conteúdo do parâmetro versao informado é inválido: [CONTEUDO] | DLL | - |
6105 | Erro: O tamanho [TAMANHO DO PARAMETRO] do parâmetro chaveCTe informado não tem 44 caracteres | DLL | - |
6106 | Erro: As posições correspondentes (1,2) ao código da UF [POSIÇÃO DA CHAVE] do parâmetro chaveCTe não é um código de UF válido | DLL | - |
6107 | Erro: A chave de acesso deve ter 44 posições: [POSIÇÃO DA CHAVE] | DLL | - |
6110 | Erro: O nome do titular do certificado deve ser informado | DLL | - |
6120 | Erro: O parâmetro chave de acesso deve ser informado | DLL | - |
6123 | Erro: O parâmetro tipoAmbiente deve ser informado | DLL | - |
6124 | Erro: O parâmetro tipoAmbiente [CONTEUDO] deve ser 1 ou 2 | DLL | - |
6141 | Erro: O parâmetro siglaWS deve ser informado | DLL | - |
6156 | Erro: O parâmetro CNPJ do Tomador deve ser informado | DLL | - |
6157 | Erro: O parâmetro CNPJ do Tomador informado:[CNPJAutor] é inválido | DLL | - |
6158 | Erro: O parâmetro dhEvento é inválido:[dhEvento] | DLL | - |
6159 | Erro: O parâmetro xObs deve ser informado | DLL | - |
6160 | Erro: O parâmetro xObs deve ter pelo menos 15 caracteres: [xObs] | DLL | - |
6161 | Erro: O parâmetro xObs pode ter no máximo 255 caracteres: [xObs] | DLL | - |
7001 | Erro: A licença não foi informada | DLL | - |
7002 | Erro: A licença informada: [CONTEUDO] tem tamanho:[TAMANHO] diferente de 128 | DLL | - |
7003 | Erro: A licença informada: [CONTEUDO] não pertence ao CNPJ:[TAMANHO] | DLL | - |
108 | Serviço Paralisado Momentaneamente (curto prazo) | WS | B03 |
109 | Serviço Paralisado sem Previsão | WS | B04 |
135 | Evento registrado e vinculado ao CT-e | WS | - |
203 | Rejeição: Emissor não habilitado para emissão do CT-e | WS | M03 |
205 | Rejeição: CT-e está denegado na base de dados da SEFAZ | WS | M05 |
213 | Rejeição: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado Digital | WS | F03 |
214 | Rejeição: Tamanho da mensagem excedeu o limite estabelecido | WS | B01 |
215 | Rejeição: Falha no schema XML | WS | D01 |
216 | Rejeição: Chave de Acesso difere da cadastrada | WS | L19 |
217 | Rejeição: CT-e não consta na base de dados da SEFAZ | WS | L18 |
218 | Rejeição: CT-e já está cancelado na base de dados da SEFAZ | WS | M06 |
219 | Rejeição: Circulação do CT-e verificada | WS | M10 |
220 | Rejeição: CT-e autorizado há mais de 7 dias (168 horas) | WS | M07 |
222 | Rejeição: Protocolo de Autorização de Uso difere do cadastrado | WS | M09 |
236 | Rejeição: Chave de Acesso com dígito verificador inválido | WS | L09 |
238 | Rejeição: Cabeçalho - Versão do arquivo XML superior a Versão vigente | WS | C06 |
239 | Rejeição: Cabeçalho - Versão do arquivo XML não suportada | WS | C07 |
240 | Rejeição: Cancelamento/Inutilização - Irregularidade Fiscal do Emitente | WS | M04 |
242 | Rejeição: Cabeçalho - Falha no Schema XML | WS | C01 |
243 | Rejeição: XML Mal Formado | WS | B02 |
249 | Rejeição: UF da Chave de Acesso diverge da UF autorizadora | WS | M01 |
252 | Rejeição: Ambiente informado diverge do Ambiente de recebimento | WS | L01 |
280 | Rejeição: Certificado Transmissor inválido | WS | A01 |
281 | Rejeição: Certificado Transmissor Data Validade | WS | A02 |
282 | Rejeição: Certificado Transmissor sem CNPJ | WS | A07 |
283 | Rejeição: Certificado Transmissor - erro Cadeia de Certificação | WS | A03 |
284 | Rejeição: Certificado Transmissor revogado | WS | A05 |
285 | Rejeição: Certificado Transmissor difere ICP-Brasil | WS | A06 |
286 | Rejeição: Certificado Transmissor erro no acesso a LCR | WS | A04 |
290 | Rejeição: Certificado Assinatura inválido | WS | E01 |
291 | Rejeição: Certificado Assinatura Data Validade | WS | E02 |
292 | Rejeição: Certificado Assinatura sem CNPJ | WS | E03 |
293 | Rejeição: Certificado Assinatura - erro Cadeia de Certificação | WS | E04 |
294 | Rejeição: Certificado Assinatura revogado | WS | E06 |
295 | Rejeição: Certificado Assinatura difere ICP-Brasil | WS | E07 |
296 | Rejeição: Certificado Assinatura erro no acesso a LCR | WS | E05 |
297 | Rejeição: Assinatura difere do calculado | WS | F02 |
298 | Rejeição: Assinatura difere do padrão do Projeto | WS | F01 |
402 | Rejeição: XML da área de dados com codificação diferente de UTF-8 | WS | D05 |
404 | Rejeição: Uso de prefixo de namespace não permitido | WS | D04 |
409 | Rejeição: Campo cUF inexistente no elemento cteCabecMsg do SOAP Header | WS | C02 |
410 | Rejeição: UF informada no campo cUF não é atendida pelo Web Service | WS | C03 |
411 | Rejeição: Campo versaoDados inexistente no elemento cteCabecMsg do SOAP Header | WS | C05 |
513 | Rejeicao: UF nao atendida pela SVC-[SP/RS] | WS | C04 |
516 | Rejeição: O tpEmis informado é incompatível com SVC-[SP/RS] | WS | L07 |
564 | Rejeição: O CT-e de anulação não pode ser cancelado | WS | M11 |
574 | Rejeição: Vedado o cancelamento de CT-e do tipo substituto (tipo=3) | WS | M12 |
575 | Rejeição: Vedado o cancelamento se possuir CT-e de Anulação associado | WS | M13 |
576 | Rejeição: Vedado o cancelamento se possuir CT-e de Substituição associado | WS | M14 |
592 | Rejeição: Chave de acesso inválida (Ano < 2009 ou Ano maior que Ano corrente | WS | L10 |
593 | Rejeição: Chave de acesso inválida (Mês = 0 ou Mês > 12) | WS | L11 |
594 | Rejeição: Chave de acesso inválida (CNPJ zerado ou digito inválido) | WS | L12 |
595 | Rejeição: Chave de acesso inválida (modelo diferente de 57) | WS | L13 |
596 | Rejeição: Chave de acesso inválida (numero CT = 0) | WS | L14 |
598 | Rejeição: Usar somente o namespace padrão do CT-e | WS | D02 |
599 | Rejeição: Não é permitida a presença de caracteres de edição no início/fim da mensagem ou entre as tags da mensagem | WS | D03 |
600 | Rejeicao: Chave de Acesso difere da existente em BD | WS | L20 |
627 | Rejeição: CNPJ do autor do evento inválido | WS | L04 |
628 | Rejeição: Erro Atributo ID do evento não corresponde a concatenação dos campos (“ID” + tpEvento + chCTe + nSeqEvento) | WS | L05 |
629 | Rejeição: O tpEvento informado inválido | WS | L06 |
630 | Rejeição: Falha no Schema XML específico para o evento | WS | L08 |
631 | Rejeição: Duplicidade de evento | WS | L15 |
633 | Rejeição: O autor do evento não é um órgão autorizado a gerar o evento | WS | L17 |
634 | Rejeição: A data do evento não pode ser menor que a data de emissão do CT-e | WS | L21 |
635 | Rejeição: A data do evento não pode ser maior que a data do processamento | WS | L23 |
636 | Rejeição: O numero sequencial do evento é maior que o permitido | WS | M02 |
637 | Rejeição: A data do evento não pode ser menor que a data de autorização do CT-e | WS | L22 |
670 | Rejeição: Série utilizada não permitida no webservice | WS | L03 |
677 | Rejeição: Órgão de recepção do evento inválido | WS | L02 |
755 | Rejeição: Autor do evento prestação do serviço em desacordo deve ser o tomador do serviço do CT-e | WS | L16 |
999 | Rejeição: Erro não catalogado (mensagem) | WS | - |
Tratamento de Erro:
Caso ocorra algum erro na chamada do WS (5001-6145) ou a requisição não seja atendida pelo WS (203-999), será gravado um log na pasta log, com as seguintes informações que devem ser úteis para identificação do problema:
- Timestamp - data e hora da ocorrência do erro
- WS - nome do WS acessado
- URL - URL do WS acessado
- ambiente - código do ambiente
- certificado - nome do titular (assunto) do certificado digital utilizado
- erro - código e descrição do erro
- msgDados - mensagem enviada ao WS
- msgRetWS - conteúdo do retorno do WS
Os erros com código > 5000 são erros tratados pela DLL e ocorrem nas seguintes situações:
- 5001 - 5017 - falha na tentativa de consumir o WS (problema de conexão/rede)
- 5101 - 5105 - falha no tratamento do XML de resposta do WS (problema na resposta do WS)
- 5201 - 5206 - falha na recuperação da URL do WS desejado (problema no arquivo de configuração da URL)
- 5403 - 5408 - falha no acesso ao certificado digital
- 6101 - 6141 - falha no tratamento dos pârametros da chamada da DLL
- 7001 - 7003 - falha na validação da licença
Histórico de atualização:
- 2017-01-12 - 3.00 - versão inicial
Mensagens XML
Evento de prestação de serviço em desacordo
<?xml version="1.0" encoding="UTF-8"?> <eventoCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="3.00"> <infEvento Id="ID6101103517010000000000019157001000000001106510045301"> <cOrgao>35</cOrgao> <tpAmb>2</tpAmb> <CNPJ>10142785000190</CNPJ> <chCTe>35170100000000000191570010000000011065100453</chCTe> <dhEvento>2017-01-26T22:14:29-02:00</dhEvento> <tpEvento>610110</tpEvento> <nSeqEvento>1</nSeqEvento> <detEvento versaoEvento="3.00"> <evPrestDesacordo> <descEvento>Prestação do Serviço em Desacordo</descEvento> <indDesacordoOper>1</indDesacordoOper> <xObs>CT-e emitido com dados incorretos</xObs> </evPrestDesacordo> </detEvento> </infEvento> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <Reference URI="#ID6101103517010000000000019157001000000001106510045301"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>ekeOwyAyTvli7txo8JZ7Hpjh8UM=</DigestValue> </Reference> </SignedInfo> <SignatureValue>L+ruCGRJayCNG8vYaVhIHHuGfdzA1V(...)BScuA/5NNw1Fn2wU4em4A==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIIUDCCBjigAwIBAgIQGclP(...)NkBdOAr7Ns4azU=</X509Certificate> </X509Data> </KeyInfo> </Signature> </eventoCTe>
Resposta do Evento de prestação de serviço em desacordo
<retEventoCTe versao="3.00" xmlns="http://www.portalfiscal.inf.br/cte"> <infEvento> <tpAmb>2</tpAmb> <verAplic>SP-CTe-22-12-2016</verAplic> <cOrgao>35</cOrgao> <cStat>135</cStat> <xMotivo>Evento registrado e vinculado a CT-e</xMotivo> <chCTe>35170100000000000191570010000000011065100453</chCTe> <tpEvento>610110</tpEvento> <xEvento>Prestação do Serviço em Desacordo</xEvento> <!-- CONTEÚDO PRESUMIDO --> <nSeqEvento>1</nSeqEvento> <dhRegEvento>2017-01-18T20:32:05-03:00</dhRegEvento> <nProt>135170005426267</nProt> </infEvento> </retEventoCTe>
Proc do Evento de prestação de serviço em desacordo
<?xml version="1.0" encoding="UTF-8"?> <procEventoCTe versao="3.00"> <eventoCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="3.00"> <infEvento Id="ID6101103517010000000000019157001000000001106510045301"> <cOrgao>35</cOrgao> <tpAmb>2</tpAmb> <CNPJ>10142785000190</CNPJ> <chCTe>35170100000000000191570010000000011065100453</chCTe> <dhEvento>2017-01-26T22:14:29-02:00</dhEvento> <tpEvento>610110</tpEvento> <nSeqEvento>1</nSeqEvento> <detEvento versaoEvento="3.00"> <evPrestDesacordo> <descEvento>Prestação do Serviço em Desacordo</descEvento> <indDesacordoOper>1</indDesacordoOper> <xObs>CT-e emitido com dados incorretos</xObs> </evPrestDesacordo> </detEvento> </infEvento> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <Reference URI="#ID6101103517010000000000019157001000000001106510045301"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>ekeOwyAyTvli7txo8JZ7Hpjh8UM=</DigestValue> </Reference> </SignedInfo> <SignatureValue>L+ruCGRJayCNG8vYaVhIHHuGfdzA1V(...)BScuA/5NNw1Fn2wU4em4A==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIIUDCCBjigAwIBAgIQGclP(...)NkBdOAr7Ns4azU=</X509Certificate> </X509Data> </KeyInfo> </Signature> </eventoCTe> <retEventoCTe versao="3.00" xmlns="http://www.portalfiscal.inf.br/cte"> <infEvento> <tpAmb>2</tpAmb> <verAplic>SP-CTe-22-12-2016</verAplic> <cOrgao>35</cOrgao> <cStat>135</cStat> <xMotivo>Evento registrado e vinculado a CT-e</xMotivo> <chCTe>35170100000000000191570010000000011065100453</chCTe> <tpEvento>610110</tpEvento> <xEvento>Prestação do Serviço em Desacordo</xEvento> <!-- CONTEÚDO PRESUMIDO --> <nSeqEvento>1</nSeqEvento> <dhRegEvento>2017-01-18T20:32:05-03:00</dhRegEvento> <nProt>135170005426267</nProt> </infEvento> </retEventoCTe> </procEventoCTe>
Exemplos de uso:
Visual Basic 6.0
' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL ' Dim msgDados As String ' retorna a mensagem XML do pedido de cancelamento criado pela DLL que foi enviado ao WS Dim msgRetWS As String ' retorna a mensagem XML de resposta do WS Dim msgResultado As String ' retorna a literal do resultado da chamada do WS Dim siglaWS As String ' informar a sigla do WS que deseja consumir Dim nomeCertificado As String ' informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" ' ' importante: indicar aqui assunto do certificado digital válido, este da associacao trata-se apenas de um exemplo para testes ' ' EXEMPLO PARA USO DE ARQUIVO PFX ' 'nomeCertificado = "ARQUIVO|c:\certificado.pfx|associacao" ' ' onde: ' ARQUIVO --> indica opção de uso de arquivo PFX ' c:\certificado.pfx --> nome e caminho do arquivo PFX ' associacao --> senha do arquivo PFX ' ' ' EXEMPLO PARA USO DE ARQUIVO PFX EM STRING BASE64 ' 'nomeCertificado = "CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha" ' ' onde: ' CERTIFICADO --> indica opção de uso de arquivo PFX em base64 ' MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy --> arquivo PFX em base64 ' senha --> senha do arquivo PFX ' Dim tipoAmbiente As Integer ' informar o código do ambiente a ser consultado: 1- produção ou 2-homologação Dim versao As String ' informar a versão da mensagem do pedido: 1.00 - cancelamento como evento' ' Informações do CT-e objeto do evento ' Dim chaveCTe As String ' informar a chave de acesso do CT-e objeto do evento Dim xObs As String ' informar a observação com pelo menos 15 caracteres Dim CNPJTom'ador As String ' informar a chave de acesso do CT-e objeto do evento prestação de serviço em desacordo Dim dhEvento As String ' informar a data e hora do evento, a DLL pega a data e hora do sistema se for informado vazio "" ' ' Retorno da DLL ' Dim cStat As Long ' retorna o resultado da chamada do WS Dim nProtocolo As String ' retorna o número do protocolo do registro do evento Dim dProtocolo As String ' retorna a data e hora do registro do evento Dim procEvento As String ' retorna protocolo de homologação de cancelamento do CT-e gerada de acordo com o leiaute de distribuição de Cancelamento de NF-e ' ' As variáveis do proxy devem ser informadas se necessário ' ' proxy deve ser informado com o endereço da url : porta, ex: 192.168.15.1:443 ' Dim proxy As String ' informar 'http://proxyserver:port' quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443' Dim usuario As String ' informar o usuário para autenticação no proxy, se necessário Dim senha As String ' informar a senha de autenticação no proxy, se necessário ' ' chave da licença de uso, vinculado ao CNPJ do emissor ' Dim licenca As String ' informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso ' ' IMPORTANTE: todas as variáveis utilizadas como parâmetro da DLL devem ser inicialiazadas ' ' proxy = "" ' informar 'http://proxyserver:port' quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443' usuario = "" ' informar o usuário para autenticação no proxy, se necessário senha = "" ' informar a senha de autenticação no proxy, se necessário msgDados = "" ' retorna a mensagem XML do pedido de cancelamento criado pela DLL que foi enviado ao WS msgRetWS = "" ' retorna a mensagem XML de resposta do WS ' ' ' licenca = "" ' informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso ' ' prepara variáveis ' nomeCertificado = "CN=M R M KATO ASAKURA EIRELI EPP:10142785000190, OU=Autenticado por AR VALOR, OU=RFB e-CNPJ A3, OU=Secretaria da Receita Federal do Brasil - RFB, L=Ourinhos, S=SP, O=ICP-Brasil, C=BR" siglaWS = "SP" ' informar a sigla do WS tipoAmbiente = 2 ' informar o código do ambiente a ser consultado: 1- produção ou 2-homologação versao = "3.00" ' informar a versão da mensagem do WS chaveCTe = "35170100000000000191570010000000011065100453" ' informar a chave de acesso do CT-e objeto do evento CNPJTomador = "10142785000190" ' ' informar a chave de acesso do CT-e objeto do evento prestação de serviço em desacordo xObs = "CT-e emitido com dados incorretos" ' informar a observação com pelo menos 15 caracteres dhEvento = "" ' Format$(Now, "yyyy-mm-ddTHH:mm:ss-03:00") ou Format$(Now, "yyyy-mm-ddTHH:mm:ss-02:00") ' pode ser informado com "" para a DLL pegar a data e hora do equipamento, mas podem ocorrer rejeição se ' o horário não estiver sincronizado com o WS ' Retorno da DLL ' cStat = 0 ' retorna o resultado da chamada do WS nProtocolo = "" ' retorna o número do protocolo da homologação do evento do CT-e dProtocolo = "" ' retorna a data e hora da homologação do evento do CT-e procEvento = "" ' retorna XML protEvento = (XML do evento registro de evento + protocolo de registro da SEFAZ) ' Dim objCTeUtil As Object Set objCTeUtil = CreateObject("CTe_Util.Util") ' ' Screen.MousePointer = vbHourglass ' ampulheta ' procEvento = objCTeUtil.EnviaPrestDesacordo(siglaWS, tipoAmbiente, nomeCertificado, versao, msgDados, msgRetWS, cStat, msgResultado, chaveCTe, CNPJTomador, xObs, dhEvento, nProtocolo, dProtocolo, proxy, usuario, senha, licenca) ' ' Screen.MousePointer = vbDefault ' normal ' ' analisar o retorno do WS, se cStat: ' ' 135 - Evento registrado e vinculado o CT-e ' ' procure guardar o msgDados, msgRetWS e msgResultado, pois eles serão úteis para identificação do problemas. ' ' ' mostra mensagem XML enviada ' MsgBox msgDados, vbInformation, "Mensagem XML do Prestação de serviço em desacordo do CT-e" ' ' mostra mensagem XML da mensagem de retorno do WS ' MsgBox msgResultado + Chr(13) + Chr(13) + msgRetWS, vbInformation, "Resultado da chamada do Web Service"
Delphi
procedure TForm1.Button2Click(Sender: TObject); var objCTeUtil: OleVariant; // declarar a interface da DLL msgDados :widestring; // retorna a mensagem XML do pedido de cancelamento criado pela DLL que foi enviado ao WS msgRetWS :widestring; // retorna a mensagem XML de resposta do WS msgResultado:widestring; // retorna a literal do resultado da chamada do WS siglaWS :widestring; // informar a sigla do WS que deseja consumir nomeCertificado:widestring; // informar o nomeCertificado tipoAmbiente : integer; // informar o código do ambiente a ser consultado: 1- produção ou 2-homologação versao : widestring; // informar a versão da mensagem do pedido: 1.00 - cancelamento como evento // // Informações do CT-e objeto do evento // chaveCTe : widestring; // informar a chave de acesso do CT-e objeto do evento xObs : widestring; // informar a observação com pelo menos 15 caracteres CNPJTomador : widestring; // informar a chave de acesso do CT-e objeto do evento prestação de serviço em desacordo dhEvento : widestring; // informar a data e hora do evento, a DLL pega a data e hora do sistema se for informado vazio "" // // Retorno da DLL // cStat : integer; // retorna o resultado da chamada do WS nProtocolo : widestring; // retorna o número do protocolo do registro do evento dProtocolo : widestring; // retorna a data e hora do registro do evento procEvento : widestring; // retorna protocolo de homologação de cancelamento do CT-e gerada de acordo com o leiaute de distribuição de Cancelamento de NF-e // // As variáveis do proxy devem ser informadas se necessário // // proxy deve ser informado com o endereço da url : porta, ex: 192.168.15.1:443 // proxy : widestring; // informar //http://proxyserver:port// quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo //http://192.168.15.1:443// usuario : widestring; // informar o usuário para autenticação no proxy, se necessário senha : widestring; // informar a senha de autenticação no proxy, se necessário // // chave da licença de uso, vinculado ao CNPJ do emissor // licenca : widestring; // informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso begin // // IMPORTANTE: todas as variáveis utilizadas como parâmetro da DLL devem ser inicialiazadas // // proxy := ''; // informar; //http://proxyserver:port// quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo; //http://192.168.15.1:443// usuario := ''; // informar o usuário para autenticação no proxy, se necessário senha := ''; // informar a senha de autenticação no proxy, se necessário msgDados := ''; // retorna a mensagem XML do pedido de cancelamento criado pela DLL que foi enviado ao WS msgRetWS := ''; // retorna a mensagem XML de resposta do WS // // // licenca := ''; // informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso // // prepara variáveis // nomeCertificado := 'CN=FLEXDOCS INFORMATICA LTDA:10142785000190, OU=presencial, OU=21601248000188, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=OURINHOS, S=SP, O=ICP-Brasil, C=BR'; siglaWS := 'SP'; // informar a sigla do WS tipoAmbiente := 2; // informar o código do ambiente a ser consultado: 1- produção ou 2-homologação versao := '3.00' ; // informar a versão da mensagem do WS chaveCTe := '35170100000000000191570010000000011065100453'; // informar a chave de acesso do CT-e objeto do evento CNPJTomador := '10142785000190'; //; // informar a chave de acesso do CT-e objeto do evento prestação de serviço em desacordo xObs := 'CT-e emitido com dados incorretos'; // informar a observação com pelo menos 15 caracteres dhEvento := ''; // Format$(Now, 'yyyy-mm-ddTHH:mm:ss-03:00') ou Format$(Now, 'yyyy-mm-ddTHH:mm:ss-02:00') // pode ser informado com '' para a DLL pegar a data e hora do equipamento, mas podem ocorrer rejeição se // o horário não estiver sincronizado com o WS // Retorno da DLL // cStat := 0; // retorna o resultado da chamada do WS nProtocolo := ''; // retorna o número do protocolo da homologação do evento do CT-e dProtocolo := ''; // retorna a data e hora da homologação do evento do CT-e procEvento := ''; // retorna XML protEvento := (XML do evento registro de evento + protocolo de registro da SEFAZ) objCTeUtil := CreateOleObject('CTe_Util.util'); // instância a DLL procEvento := objCTeUtil.EnviaPrestDesacordo(siglaWS, tipoAmbiente, nomeCertificado, versao, msgDados, msgRetWS, cStat, msgResultado, chaveCTe, CNPJTomador, xObs, dhEvento, nProtocolo, dProtocolo, proxy, usuario, senha, licenca); // analisar o retorno do WS, se cStat: // // 135 - Evento registrado e vinculado o CT-e // // procure guardar o msgDados, msgRetWS e msgResultado, pois eles serão úteis para identificação do problemas. // // MessageDlg( 'Resultado da chamada do Web Service:'+#13+#13+msgResultado, mtInformation, [mbOk], 0); // // mostra mensagem XML enviada // MessageDlg( 'Mensagem XML do Prestação de serviço em desacordo do CT-e:'+#13+#13+msgDados, mtInformation, [mbOk], 0); // // mostra mensagem XML da mensagem de retorno do WS // MessageDlg( 'Resultado da chamada do Web Service:'+#13+#13+msgRetWS, mtInformation, [mbOk], 0); end;
- 10.6.5. Prestação de serviço em desacordo
10.6. Eventos do CT-e - « Anterior
10.6.4. Registro Multimodal - Próximo »
10.6.6. Cancelamento da Prestação em desacordo novo